package com.campus.app.service;

import com.campus.commons.entity.Feedback;
import com.baomidou.mybatisplus.extension.service.IService;
import com.campus.commons.utils.MyPage;
import com.campus.commons.utils.Result;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * <p>
 * 问题反馈 服务类
 * </p>
 *
 * @author Rin
 * @since 2020-12-24
 */
public interface FeedbacksService extends IService<Feedback> {

    /**
     * 查询所有反馈信息
     * @param myPage 分页条件
     * @return
     */
    Result<List<Feedback>> getAllFeedbacks(MyPage<Feedback> myPage);

    /** 查看详情；
     * 查询feedback 根据Id
     * @param id  根据Id
     * @return
     */
    Result<Feedback> getFeedbackById(Integer id);

    /**
     * 添加反馈信息；
     * @param feedback
     * @return
     */
    Result addFeedback(Feedback feedback);



    /**
     *  处理反馈：
     * @param id 反馈的Id
     * @return
     */
     Result disposeFeedback(Integer id);

    /**
     * 多条件查询： 查询反馈的状态，还有FeedType的name(类型名称) 和isSystem(目标：前台还是后台，学校)
     * @param myPage
     * @return
     */
    Result<List<Feedback>> getFeedbacks(MyPage<Feedback> myPage);

    /** 删除了用户应该就看不到了， 所以这个方法暂时先不要用；
     * 删除反馈记录，删除前必须保证该反馈被处理了，或者由用户撤销；
     * @param id
     * @return
     */
    Result delFeedback(@NotNull @Min(1)Integer id);

}
